package pe.com.bn.sach.service.impl;
 

import java.util.List;


import pe.com.bn.sach.cliente.controller.ClienteController;
import pe.com.bn.sach.dao.Calificacion53DAO;
import pe.com.bn.sach.dao.AprobSectorFinan53DAO;
import pe.com.bn.sach.dao.CalComprobDomicDAO;
import pe.com.bn.sach.dao.CalPresOtrosBancDAO;
import pe.com.bn.sach.dao.PrestamoExpedienteDAO;
import pe.com.bn.sach.dao.FinanciarGastos33DAO;


import pe.com.bn.sach.seguridad.DatosSesion;
import pe.com.bn.sach.domain.Bnchf46Usuario;
import pe.com.bn.sach.domain.Bnchf53CalPrestOtroBanc;
import pe.com.bn.sach.domain.Bnchf53CalPrestOtroBancId;
import pe.com.bn.sach.domain.Bnchf33PrestamoExpediente;
import pe.com.bn.sach.service.CalificacionService;
import pe.com.bn.sach.domain.Bnchf53CalAprobSectFinancId;
import pe.com.bn.sach.domain.Bnchf53CalAprobSectFinanc;

import pe.com.bn.sach.domain.Bnchf33PrestamoFlujoExpeId;
import pe.com.bn.sach.domain.Bnchf33PrestamoFlujoExpe;
import pe.com.bn.sach.domain.Bnchf33FinanciarGastos;
import pe.com.bn.sach.domain.Bnchf53CalComprobDomic;
import pe.com.bn.sach.domain.Bnchf33FinanciarGastosId;
import pe.com.bn.sach.domain.Bnchf53CalComprobDomicId;


import org.apache.log4j.Logger;


import pe.com.bn.sach.domain.Bnchf53Calificacion;
import pe.com.bn.sach.domain.Bnchf53CalificacionId;
import pe.com.bn.sach.domain.Bnchf13Expediente;
import pe.com.bn.sach.domain.Bnchf41UnidadProc;


public class CalificacionServiceImpl  implements CalificacionService

{
	private static Logger log = Logger.getLogger(ClienteController.class.getName());
	
	Calificacion53DAO calificacionDAO;
	AprobSectorFinan53DAO aprobSectorFinanDAO;
	CalComprobDomicDAO calComprobDomicDAO;
	CalPresOtrosBancDAO calPresOtrosBancDAO;
	PrestamoExpedienteDAO prestamoExpedienteDAO;
	FinanciarGastos33DAO financiarGastosDAO;
	
	
	
	
	
	
	public List listaCalAprobSectFinan(String idExpediente) throws Exception 
	{
		
		
		Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
		bnchf13Expediente.setF13IdExpediente(idExpediente);
		return calificacionDAO.listaCalAprobSectFinan(bnchf13Expediente);
	}
	/**************** imprimir pre calificacion resumen ********
	 * @throws Exception*/
	
	
	public Bnchf13Expediente getImprimirPrecalificacion(String idExpediente,String idUp,String idVersion) throws Exception
	{
		
		Bnchf13Expediente Expediente = new Bnchf13Expediente();
			Expediente.setF13IdExpediente(idExpediente);	
		Bnchf53CalificacionId CalificacionId = new Bnchf53CalificacionId();
			Bnchf41UnidadProc UnidadProc = new Bnchf41UnidadProc();
				UnidadProc.setF41IdUnidProc(new Long(idUp));
			CalificacionId.setBnchf41UnidadProc(UnidadProc);
		Bnchf53Calificacion calificacion = new Bnchf53Calificacion();
		calificacion.setId(CalificacionId);
			
		Expediente.setBnchf53Calificacion(calificacion);
		Expediente.setIdVersion(idVersion);
		
		Expediente = calificacionDAO.getImpPrecalificacion(Expediente);
		return Expediente;
	}
	
	
	public List ListaCalcPresOtrosBanc(Bnchf53CalPrestOtroBanc bnchf53CalPrestOtroBanc) throws Exception
	{
		return  calPresOtrosBancDAO.ListaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);
	}
	
	public List ListaCalcPresOtrosBancprecalificacion(String idExpediente, String idUp,String version) throws Exception
	{
		
			
		Bnchf53CalPrestOtroBanc bnchf53CalPrestOtroBanc = new Bnchf53CalPrestOtroBanc();
		
		bnchf53CalPrestOtroBanc.getId().getBnchf53Calificacion().getId().getBnchf13Expediente().setF13IdExpediente(idExpediente);
		bnchf53CalPrestOtroBanc.getId().getBnchf53Calificacion().getId().getBnchf41UnidadProc().setF41IdUnidProc(new Long(idUp));
		bnchf53CalPrestOtroBanc.getId().getBnchf53Calificacion().getId().setF53IdVersion(new Long(version));
		return  calPresOtrosBancDAO.ListaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);
	}
	
	
	/**********************ingreso sumaCuotaMens **************************/
	
	public String sumaCuotaMensBanco(String idExpediente,String idUp,String Version) throws Exception
	{
		
		Bnchf53CalificacionId CalificacionId = new Bnchf53CalificacionId();
		Bnchf13Expediente Expediente = new Bnchf13Expediente();
		Expediente.setF13IdExpediente(idExpediente);
		Bnchf41UnidadProc UnidadProc = new Bnchf41UnidadProc();
		UnidadProc.setF41IdUnidProc(new Long(idUp));
		
		CalificacionId.setBnchf13Expediente(Expediente);
		CalificacionId.setBnchf41UnidadProc(UnidadProc);
		CalificacionId.setF53IdVersion(new Long(Version));
		
		Bnchf53Calificacion calificacion = new Bnchf53Calificacion();
		calificacion.setId(CalificacionId);
	/***********************/
		Bnchf53CalPrestOtroBancId bnchf53CalPrestOtroBancId = new Bnchf53CalPrestOtroBancId();
		bnchf53CalPrestOtroBancId.setBnchf53Calificacion(calificacion);
		
		
		Bnchf53CalPrestOtroBanc bnchf53CalPrestOtroBanc = new Bnchf53CalPrestOtroBanc();
		bnchf53CalPrestOtroBanc.setId(bnchf53CalPrestOtroBancId);
		
		return calPresOtrosBancDAO.sumaCuotaMens(bnchf53CalPrestOtroBanc);
	}
	
	
	public void guardarPreCalificacion(
			Bnchf53Calificacion bnchf53Calificacion,
			List lpresotrosbanc,
			Bnchf33PrestamoExpediente bnchf33PrestamoExpediente,
			Bnchf33PrestamoFlujoExpe bnchf33PrestamoFlujoExpe,
			DatosSesion datosSesion,
			String NivelAprb
	) throws Exception
	{
		
		
		bnchf53Calificacion.setF53IdUsuaCrea(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53IdUsuaModi(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53UsrAct(new Long(datosSesion.codigoUsuario));
		
		if(bnchf33PrestamoExpediente != null)
		{
		bnchf33PrestamoExpediente.setF33IdUsrCalEval(new Long(datosSesion.getCodigoUsuario()));
		bnchf33PrestamoExpediente.setF33IdUsuaCrea(datosSesion.getCodigoHost());
		bnchf33PrestamoExpediente.setF33IdUsuaModi(datosSesion.getCodigoHost());
		}
		if(bnchf33PrestamoFlujoExpe != null)
		{
		bnchf33PrestamoFlujoExpe.setF33IdUsrCalEval(new Long(datosSesion.getCodigoUsuario()));
		bnchf33PrestamoFlujoExpe.setF33IdUsuaCrea(datosSesion.getCodigoHost());
		bnchf33PrestamoFlujoExpe.setF33IdUsuaModi(datosSesion.getCodigoHost());
		}
		
		
		
		
		
		///("* *************** Preguntando si Existe la Calificacion Para Actualizarla **************");
		
		List l;
		l = calificacionDAO.listaCalificacion(bnchf53Calificacion);
		
		
		if(l.size()!=0)
		{
			calificacionDAO.ActualizaPreEvaCrediticia(bnchf53Calificacion);
		}
		else{
			//("calificacionDAO.GuardaCalificacio");
			calificacionDAO.GuardaPreEvaCrediticia(bnchf53Calificacion);	
		}
		
		//("***** Preguntando si Existe Ingresos Banco********");
		Bnchf53CalPrestOtroBanc bnchf53CalPrestOtroBanc;
		Bnchf53CalPrestOtroBancId bnchf53CalPrestOtroBancId = new Bnchf53CalPrestOtroBancId();
		if(lpresotrosbanc!=null)
		if(lpresotrosbanc.size()!=0)
		{
			bnchf53CalPrestOtroBanc = new Bnchf53CalPrestOtroBanc();
				bnchf53CalPrestOtroBancId.setBnchf53Calificacion(bnchf53Calificacion);
			bnchf53CalPrestOtroBanc.setId(bnchf53CalPrestOtroBancId);
			//("consultando si existen prestamos ingresados para darlos de baja");
			l = calPresOtrosBancDAO.ListaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);
			//(" existen prestamos ="+l.size());
			if(l.size()!=0)
			for(int i=0;i<l.size();i++)
			{
				bnchf53CalPrestOtroBanc = (Bnchf53CalPrestOtroBanc)l.get(i);
				calPresOtrosBancDAO.ActualizaCalcPresOtrosBancStado(bnchf53CalPrestOtroBanc);
			}
			//(" Ingresamos los nuevos ingresos de banco con stado 1 =");
			for(int i=0;i<lpresotrosbanc.size();i++)
			{
				bnchf53CalPrestOtroBanc = (Bnchf53CalPrestOtroBanc)lpresotrosbanc.get(i);
				//("calPresOtrosBancDAO.GuardaCalcPresOtrosBanc");
				calPresOtrosBancDAO.GuardaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);	
			}
		}
		//("***** Preguntando si Prestamo Expediente ********");
		String i ="0";
		if(bnchf33PrestamoExpediente!=null)
		{		i = prestamoExpedienteDAO.IDPRESTAMOEXPEDIENTE(bnchf33PrestamoExpediente);
			//("resultado si prestamo existe ="+i);
			if(i!="0")
			{
				
				prestamoExpedienteDAO.ActualizaPrestamoExpediente(bnchf33PrestamoExpediente);
			}
			else
			{
				
				prestamoExpedienteDAO.GuardaPrestamoExpediente(bnchf33PrestamoExpediente);	
			}
			//("***** Preguntando si Prestamo Expediente Flujo ********");
			//("resultado si prestamo existe ="+i);
		}
		if(bnchf33PrestamoFlujoExpe!=null)
		{
			i=prestamoExpedienteDAO.IDPRESTAMOEXPEDIENTEFLUJO(bnchf33PrestamoFlujoExpe);
			if(i!="0")
			{
					//("prestamoExpedienteDAO.ActualizaPrestamoExpedienteFlujo");
					prestamoExpedienteDAO.ActualizaPrestamoExpedienteFlujo(bnchf33PrestamoFlujoExpe);
				}
			else
			{
				//("prestamoExpedienteDAO.GuardaPrestamoExpedienteFlujo");
				prestamoExpedienteDAO.GuardaPrestamoExpedienteFlujo(bnchf33PrestamoFlujoExpe);
			}
		}
		
		
		/***
		 * 
		 * Aprobacion Sector Financiero
		 */
		
		if(  bnchf53Calificacion.getFlagAprobTit().trim().length()!=0    ||  bnchf53Calificacion.getFlagAprobFam().trim().length()!=0 )
		{
				Bnchf46Usuario bnchf46Usuario = new Bnchf46Usuario();
			bnchf46Usuario.setF46IdUsua(new Long(datosSesion.getCodigoUsuario()));
			Bnchf53CalAprobSectFinancId bnchf53CalAprobSectFinancId = new Bnchf53CalAprobSectFinancId();
			bnchf53CalAprobSectFinancId.setBnchf53Calificacion(bnchf53Calificacion);
			bnchf53CalAprobSectFinancId.setBnchf46Usuario(bnchf46Usuario);
			Bnchf53CalAprobSectFinanc bnchf53CalAprobSectFinanc = new Bnchf53CalAprobSectFinanc();
			bnchf53CalAprobSectFinanc.setId(bnchf53CalAprobSectFinancId);
			if(bnchf53Calificacion.getFlagAprobTit()!=null)if(bnchf53Calificacion.getFlagAprobTit().trim().length()!=0)
			{
				bnchf53CalAprobSectFinanc.setF53StdoCalfBnTit(new Long(bnchf53Calificacion.getFlagAprobTit()));
			}
			if(bnchf53Calificacion.getFlagAprobFam()!=null)if(bnchf53Calificacion.getFlagAprobFam().trim().length()!=0)
				bnchf53CalAprobSectFinanc.setF53StdoCalfBnFam(new Long(bnchf53Calificacion.getFlagAprobFam()));
			
			bnchf53CalAprobSectFinanc.setF53NivelAprob(NivelAprb);
			
			l = calificacionDAO.listaCalAprobSectFinanUpdate(bnchf53CalAprobSectFinanc);
			
			Bnchf53CalAprobSectFinanc queryAprobSectFinanc = new Bnchf53CalAprobSectFinanc();
			if(l.size()!=0)
			{
					queryAprobSectFinanc = (Bnchf53CalAprobSectFinanc)l.get(0);
					if(queryAprobSectFinanc.getF53StdoCalfBnTit()!=null)
						
					{
						//"calificacionDAO.ActualizaCalAprobSectFinanTIT");
						calificacionDAO.ActualizaCalAprobSectFinanTIT(bnchf53CalAprobSectFinanc);
					}
					if(queryAprobSectFinanc.getF53StdoCalfBnFam()!=null)
					{
						//calificacionDAO.ActualizaCalAprobSectFinanFAM");
						calificacionDAO.ActualizaCalAprobSectFinanFAM(bnchf53CalAprobSectFinanc);
					}
				}
			else
			{
				calificacionDAO.GuardaCalAprobSectFinan(bnchf53CalAprobSectFinanc);
			}
			
		}
		
	}
	
	
	
	
	public void guardarCalificacionDesembolso(
			Bnchf33PrestamoExpediente bnchf33PrestamoExpediente,
			Bnchf33PrestamoFlujoExpe bnchf33PrestamoFlujoExpe
	) throws Exception
	{
		
		

		
		String i ="0";
		if(bnchf33PrestamoExpediente!=null)
		{					
				//("prestamoExpedienteDAO.ActualizaPrestamoExpedienteDesembolso");
				prestamoExpedienteDAO.ActualizaPrestamoExpedienteDesembolso(bnchf33PrestamoExpediente);	
		}
		if(bnchf33PrestamoFlujoExpe!=null)
		{
			i=prestamoExpedienteDAO.IDPRESTAMOEXPEDIENTEFLUJO(bnchf33PrestamoFlujoExpe);
			if(i!="0")
			{
					//("prestamoExpedienteDAO.ActualizaPrestamoExpedienteFlujo");
					prestamoExpedienteDAO.ActualizarPrestamoFlujoDesembolso(bnchf33PrestamoFlujoExpe);
				}
			else
			{
				//"prestamoExpedienteDAO.GuardaPrestamoExpedienteFlujo");
				prestamoExpedienteDAO.guardarprestamoflujoCnf(bnchf33PrestamoFlujoExpe);
			}
		}
	
	
	}
	
	
	
	
	public Bnchf33PrestamoExpediente getPrestamoExp(String idExpediente) throws Exception
	{
			Bnchf13Expediente Expediente = new Bnchf13Expediente();
			Expediente.setF13IdExpediente(idExpediente);
			Bnchf33PrestamoExpediente bnchf33PrestamoExpediente = new Bnchf33PrestamoExpediente();
			bnchf33PrestamoExpediente.setBnchf13Expediente(Expediente);
		List l = prestamoExpedienteDAO.listaPrestamoExp(bnchf33PrestamoExpediente);
		bnchf33PrestamoExpediente = l.size() != 0 ?  (Bnchf33PrestamoExpediente)l.get(0): new Bnchf33PrestamoExpediente();
		return bnchf33PrestamoExpediente;
	}
	
	public Bnchf33PrestamoFlujoExpe getPrestamoFlujoExp(String idExpediente,String idUp,String Version) throws Exception
	{
		
		Bnchf33PrestamoFlujoExpeId bnchf33PrestamoFlujoExpeId = new Bnchf33PrestamoFlujoExpeId();
			Bnchf13Expediente Expediente = new Bnchf13Expediente();
			Expediente.setF13IdExpediente(idExpediente);
			bnchf33PrestamoFlujoExpeId.setBnchf13Expediente(Expediente);
		
		
			Bnchf41UnidadProc UnidadProc = new Bnchf41UnidadProc();
			UnidadProc.setF41IdUnidProc(new Long(idUp));
			
			bnchf33PrestamoFlujoExpeId.setBnchf13Expediente(Expediente);
			bnchf33PrestamoFlujoExpeId.setBnchf41UnidadProc(UnidadProc);
			bnchf33PrestamoFlujoExpeId.setF33IdVersion(new Long(Version));
		Bnchf33PrestamoFlujoExpe bnchf33PrestamoFlujoExpe = new Bnchf33PrestamoFlujoExpe();
		bnchf33PrestamoFlujoExpe.setId(bnchf33PrestamoFlujoExpeId);
		
		List l = prestamoExpedienteDAO.listaPrestamoFlujoExp(bnchf33PrestamoFlujoExpe);
		bnchf33PrestamoFlujoExpe = l.size() != 0 ?  (Bnchf33PrestamoFlujoExpe)l.get(0): new Bnchf33PrestamoFlujoExpe();
		return bnchf33PrestamoFlujoExpe;
	}
	
	
	public Bnchf53Calificacion getCalificacion(String idExpediente,String idUp,String Version) throws Exception
	{
		
		
		
		Bnchf53CalificacionId CalificacionId = new Bnchf53CalificacionId();
			Bnchf13Expediente Expediente = new Bnchf13Expediente();
			Expediente.setF13IdExpediente(idExpediente);
			Bnchf41UnidadProc UnidadProc = new Bnchf41UnidadProc();
			UnidadProc.setF41IdUnidProc(new Long(idUp));
			
			CalificacionId.setBnchf13Expediente(Expediente);
			CalificacionId.setBnchf41UnidadProc(UnidadProc);
			CalificacionId.setF53IdVersion(new Long(Version));
			

			
			
		Bnchf53Calificacion calificacion = new Bnchf53Calificacion();
		calificacion.setId(CalificacionId);
		
		List l = calificacionDAO.listaCalificacion(calificacion);
		
		
		calificacion = l.size() != 0 ?  (Bnchf53Calificacion)l.get(0): null;
		return calificacion;
	}
	

	public void  GuardarDocSolicitados(
			Bnchf33PrestamoExpediente bnchf33PrestamoExpediente,
			Bnchf33FinanciarGastos bnchf33FinanciarGastos,
			Bnchf53Calificacion bnchf53Calificacion,
			List lBnchf53CalComprobDomic,
			DatosSesion datosSesion
			) throws Exception
	{
		
		bnchf53Calificacion.setF53IdUsuaCrea(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53IdUsuaModi(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53UsrAct(new Long(datosSesion.codigoUsuario));
		
		if(bnchf33PrestamoExpediente!=null)
		{
			
			prestamoExpedienteDAO.ActualizaPresExpGastosFinan(bnchf33PrestamoExpediente);
		}
		
		List l ;
		
		if(bnchf33FinanciarGastos!=null)
			{
			    //("ya existen gastos financiados ??");
				l = financiarGastosDAO.listaFinanciarGastos(bnchf33FinanciarGastos);
				
				if(l.size()==0)
				{
					//("guardaFinanciarGastos");
					financiarGastosDAO.guardaFinanciarGastos(bnchf33FinanciarGastos);
				}
				else
				{
					///.info("ActualizaFinanciarGastos");
					financiarGastosDAO.ActualizaFinanciarGastos(bnchf33FinanciarGastos);
				}
			}
		
		
		if(bnchf53Calificacion!=null)
		{
			
			
			
			l = calificacionDAO.listaCalificacion(bnchf53Calificacion);
			
			
			if(l.size()!=0)
			{
				///("ActualizaCalificacionDocSol");
				calificacionDAO.ActualizaPreCalificacionDocSol(bnchf53Calificacion);
			}
			else{
				//("calificacionDAO.GuardaCalificacio");
				calificacionDAO.GuardaPreEvaCrediticia(bnchf53Calificacion);	
			}
			
			if(lBnchf53CalComprobDomic!=null)
				if(lBnchf53CalComprobDomic.size()!=0)
			{
				Bnchf53CalComprobDomic  bnchf53CalComprobDomic = (Bnchf53CalComprobDomic)lBnchf53CalComprobDomic.get(0);
				l = calComprobDomicDAO.ListaCalComprobDomic(bnchf53CalComprobDomic);
								
				if(l.size()==0)
				{
					for(int i=0;i<lBnchf53CalComprobDomic.size();i++)
					{
						bnchf53CalComprobDomic = (Bnchf53CalComprobDomic)lBnchf53CalComprobDomic.get(i);
						calComprobDomicDAO.GuardaCalComprobDomic(bnchf53CalComprobDomic);
					}
				}
				else
				{
					calComprobDomicDAO.DeleteCalComprobDomic(bnchf53CalComprobDomic);
					for(int i=0;i<lBnchf53CalComprobDomic.size();i++)
					{
						bnchf53CalComprobDomic = (Bnchf53CalComprobDomic)lBnchf53CalComprobDomic.get(i);
						calComprobDomicDAO.GuardaCalComprobDomic(bnchf53CalComprobDomic);
					}
				}
			}
				else
				{
					
					Bnchf53CalComprobDomic bnchf53CalComprobDomic = new Bnchf53CalComprobDomic();
					bnchf53CalComprobDomic.getId().setBnchf53Calificacion(bnchf53Calificacion);
					calComprobDomicDAO.DeleteCalComprobDomic(bnchf53CalComprobDomic);
				}
		}
	}
	
	public void guardarEvcParamFinan(
			Bnchf53Calificacion bnchf53Calificacion,
			List lpresotrosbanc,
			Bnchf33PrestamoExpediente bnchf33PrestamoExpediente,
			Bnchf33PrestamoFlujoExpe bnchf33PrestamoFlujoExpe,
			DatosSesion datosSesion
	) throws Exception
	{
		bnchf53Calificacion.setF53IdUsuaCrea(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53IdUsuaModi(datosSesion.getCodigoUsuario());
		bnchf53Calificacion.setF53UsrAct(new Long(datosSesion.codigoUsuario));
		
		if(bnchf33PrestamoExpediente!=null)
		{
		bnchf33PrestamoExpediente.setF33IdUsrCalEval(new Long(datosSesion.getCodigoUsuario()));
		bnchf33PrestamoExpediente.setF33IdUsuaModi(datosSesion.getCodigoHost());
		bnchf33PrestamoExpediente.setF33IdUsuaCrea(datosSesion.getCodigoHost());
		}
		if(bnchf33PrestamoFlujoExpe !=null)
		{
		bnchf33PrestamoFlujoExpe.setF33IdUsrCalEval(new Long(datosSesion.getCodigoUsuario()));
		bnchf33PrestamoFlujoExpe.setF33IdUsuaCrea(datosSesion.getCodigoHost());
		bnchf33PrestamoFlujoExpe.setF33IdUsuaModi(datosSesion.getCodigoHost());
		}
		
	List l;
		//("* *************** Preguntando si Existe la Calificacion Para Actualizarla **************");
		calificacionDAO.ActualizaEvcParamFinan(bnchf53Calificacion);
		//("***** Preguntando si Existe Ingresos Banco********");
		Bnchf53CalPrestOtroBanc bnchf53CalPrestOtroBanc;
		Bnchf53CalPrestOtroBancId bnchf53CalPrestOtroBancId = new Bnchf53CalPrestOtroBancId();
		if(lpresotrosbanc!=null)
		if(lpresotrosbanc.size()!=0)
		{
			bnchf53CalPrestOtroBanc = new Bnchf53CalPrestOtroBanc();
				bnchf53CalPrestOtroBancId.setBnchf53Calificacion(bnchf53Calificacion);
			bnchf53CalPrestOtroBanc.setId(bnchf53CalPrestOtroBancId);
			//("consultando si existen prestamos ingresados para darlos de baja");
			l = calPresOtrosBancDAO.ListaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);
			
			if(l.size()!=0)
			for(int i=0;i<l.size();i++)
			{
				bnchf53CalPrestOtroBanc = (Bnchf53CalPrestOtroBanc)l.get(i);
				calPresOtrosBancDAO.ActualizaCalcPresOtrosBancStado(bnchf53CalPrestOtroBanc);
			}
			///(" Ingresamos los nuevos ingresos de banco con stado 1 =");
			for(int i=0;i<lpresotrosbanc.size();i++)
			{
				bnchf53CalPrestOtroBanc = (Bnchf53CalPrestOtroBanc)lpresotrosbanc.get(i);
				//("calPresOtrosBancDAO.GuardaCalcPresOtrosBanc");
				calPresOtrosBancDAO.GuardaCalcPresOtrosBanc(bnchf53CalPrestOtroBanc);	
			}
		}
		
		
		String i ="0";
		if(bnchf33PrestamoExpediente!=null)
		{
				i = prestamoExpedienteDAO.IDPRESTAMOEXPEDIENTE(bnchf33PrestamoExpediente);
				//("resultado si prestamo existe ="+i);
				if(i!="0")
				{
					//("prestamoExpedienteDAO.ActualizaPrestamoExpediente");
					prestamoExpedienteDAO.ActualizaPrestamoExpediente(bnchf33PrestamoExpediente);
				}
				else
				{
					
					prestamoExpedienteDAO.GuardaPrestamoExpediente(bnchf33PrestamoExpediente);	
				}
		}
		if(bnchf33PrestamoFlujoExpe!=null)
		{
				i=prestamoExpedienteDAO.IDPRESTAMOEXPEDIENTEFLUJO(bnchf33PrestamoFlujoExpe);
				
				if(i!="0")
				{
					
					prestamoExpedienteDAO.ActualizaPrestamoExpedienteFlujo(bnchf33PrestamoFlujoExpe);
				}
				else
				{
				
				prestamoExpedienteDAO.GuardaPrestamoExpedienteFlujo(bnchf33PrestamoFlujoExpe);
				}
		}
		
	}
	
	
	public void ActualizaEvCrediticiaParamEval(Bnchf53Calificacion bnchf53Calificacion,DatosSesion datosSesion,String NivelAprb) throws Exception
	{
		
		
		List l;
		calificacionDAO.ActualizaEvCrediticiaParamEval(bnchf53Calificacion);
		
		/***
		 * 
		 * Aprobacion Sector Financiero
		 */
		
		Bnchf46Usuario bnchf46Usuario = new Bnchf46Usuario();
		bnchf46Usuario.setF46IdUsua(new Long(datosSesion.getCodigoUsuario()));
		Bnchf53CalAprobSectFinancId bnchf53CalAprobSectFinancId = new Bnchf53CalAprobSectFinancId();
		bnchf53CalAprobSectFinancId.setBnchf53Calificacion(bnchf53Calificacion);
		bnchf53CalAprobSectFinancId.setBnchf46Usuario(bnchf46Usuario);
		Bnchf53CalAprobSectFinanc bnchf53CalAprobSectFinanc = new Bnchf53CalAprobSectFinanc();
		bnchf53CalAprobSectFinanc.setId(bnchf53CalAprobSectFinancId);
		if(bnchf53Calificacion.getFlagAprobTit()!=null)if(!bnchf53Calificacion.getFlagAprobTit().equals(""))
		{
			
			bnchf53CalAprobSectFinanc.setF53StdoCalfBnTit(new Long(bnchf53Calificacion.getFlagAprobTit()));
		}
		if(bnchf53Calificacion.getFlagAprobFam()!=null)if(!bnchf53Calificacion.getFlagAprobFam().equals(""))
			bnchf53CalAprobSectFinanc.setF53StdoCalfBnFam(new Long(bnchf53Calificacion.getFlagAprobFam()));
		
		bnchf53CalAprobSectFinanc.setF53NivelAprob(NivelAprb);
		
		l = calificacionDAO.listaCalAprobSectFinanUpdate(bnchf53CalAprobSectFinanc);
		
		Bnchf53CalAprobSectFinanc queryAprobSectFinanc = new Bnchf53CalAprobSectFinanc();
		
		//if(Integer.parseInt(bnchf53Calificacion.getFlagAprobTit())!=0 )
		if(l.size()!=0)
		{
			queryAprobSectFinanc = (Bnchf53CalAprobSectFinanc)l.get(0);
			//if(queryAprobSectFinanc.getF53StdoCalfBnTit()!=null)
				//{
					///("query ActualizaCalAprobSectFinanTIT");
					calificacionDAO.ActualizaCalAprobSectFinanTIT(bnchf53CalAprobSectFinanc);
//				}
	//		if(queryAprobSectFinanc.getF53StdoCalfBnFam()!=null)
		//		{
					///"query ActualizaCalAprobSectFinanFAM");
					calificacionDAO.ActualizaCalAprobSectFinanFAM(bnchf53CalAprobSectFinanc);
			//	}
		}
		else
		{
			///("query GuardaCalAprobSectFinan");
			calificacionDAO.GuardaCalAprobSectFinan(bnchf53CalAprobSectFinanc);
		}
		

		
	}
	
	 public Bnchf33FinanciarGastos getFinanciarGastos(String idExpediente,String idUp,String idVersion) throws Exception
	 {
	 	
	 	
	 	Bnchf13Expediente bnchf13Expediente = new Bnchf13Expediente();
	 		bnchf13Expediente.setF13IdExpediente(idExpediente);
	 	Bnchf41UnidadProc bnchf41UnidadProc = new Bnchf41UnidadProc();
	 		bnchf41UnidadProc.setF41IdUnidProc(new Long(idUp));
	 	Bnchf33FinanciarGastosId bnchf33FinanciarGastosId = new Bnchf33FinanciarGastosId();
	 		bnchf33FinanciarGastosId.setBnchf13Expediente(bnchf13Expediente);
	 		bnchf33FinanciarGastosId.setBnchf41UnidadProc(bnchf41UnidadProc);
	 		bnchf33FinanciarGastosId.setF33IdVersion(new Long(idVersion));
	 	Bnchf33FinanciarGastos bnchf33FinanciarGastos = new Bnchf33FinanciarGastos();
	 	bnchf33FinanciarGastos.setId(bnchf33FinanciarGastosId);
	 	
	 	
	 	List l = financiarGastosDAO.listaFinanciarGastos(bnchf33FinanciarGastos);
	 	if(l!=null)
	 		if(l.size()!=0)
	 	bnchf33FinanciarGastos = (Bnchf33FinanciarGastos)l.get(0); 
	 	return bnchf33FinanciarGastos;
	 }
	
	
	 public List  getcalComprobDomic(String idExpediente,String idUp,String version) throws Exception
	 {
	 	
		
	 	
	 	Bnchf53Calificacion bnchf53Calificacion = new Bnchf53Calificacion();
	 		bnchf53Calificacion.getId().getBnchf13Expediente().setF13IdExpediente(idExpediente);
	 		bnchf53Calificacion.getId().getBnchf41UnidadProc().setF41IdUnidProc(new Long(idUp));
	 		bnchf53Calificacion.getId().setF53IdVersion(new Long(version)); 
			
	 	bnchf53Calificacion.getId().getBnchf13Expediente().setF13IdExpediente(idExpediente);
	 	
	 	Bnchf53CalComprobDomicId bnchf53CalComprobDomicId = new Bnchf53CalComprobDomicId();
	 		bnchf53CalComprobDomicId.setBnchf53Calificacion(bnchf53Calificacion);
	
	 	Bnchf53CalComprobDomic bnchf53CalComprobDomic = new Bnchf53CalComprobDomic();
	 		bnchf53CalComprobDomic.setId(bnchf53CalComprobDomicId);
	 	
	 	
	 	List l = calComprobDomicDAO.ListaCalComprobDomic(bnchf53CalComprobDomic);
	 	
	 	 
	 	return l;
	 }
	/**
	 * @return Devuelve aprobSectorFinanDAO.
	 */
	public AprobSectorFinan53DAO getAprobSectorFinanDAO() {
		return aprobSectorFinanDAO;
	}
	/**
	 * @param aprobSectorFinanDAO El aprobSectorFinanDAO a establecer.
	 */
	public void setAprobSectorFinanDAO(AprobSectorFinan53DAO aprobSectorFinanDAO) {
		this.aprobSectorFinanDAO = aprobSectorFinanDAO;
	}
	/**
	 * @return Devuelve calComprobDomicDAO.
	 */
	public CalComprobDomicDAO getCalComprobDomicDAO() {
		return calComprobDomicDAO;
	}
	/**
	 * @param calComprobDomicDAO El calComprobDomicDAO a establecer.
	 */
	public void setCalComprobDomicDAO(CalComprobDomicDAO calComprobDomicDAO) {
		this.calComprobDomicDAO = calComprobDomicDAO;
	}
	/**
	 * @return Devuelve calificacionDAO.
	 */
	public Calificacion53DAO getCalificacionDAO() {
		return calificacionDAO;
	}
	/**
	 * @param calificacionDAO El calificacionDAO a establecer.
	 */
	public void setCalificacionDAO(Calificacion53DAO calificacionDAO) {
		this.calificacionDAO = calificacionDAO;
	}
	/**
	 * @return Devuelve calPresOtrosBancDAO.
	 */
	public CalPresOtrosBancDAO getCalPresOtrosBancDAO() {
		return calPresOtrosBancDAO;
	}
	/**
	 * @param calPresOtrosBancDAO El calPresOtrosBancDAO a establecer.
	 */
	public void setCalPresOtrosBancDAO(CalPresOtrosBancDAO calPresOtrosBancDAO) {
		this.calPresOtrosBancDAO = calPresOtrosBancDAO;
	}
	/**
	 * @return Devuelve prestamoExpedienteDAO.
	 */
	public PrestamoExpedienteDAO getPrestamoExpedienteDAO() {
		return prestamoExpedienteDAO;
	}
	/**
	 * @param prestamoExpedienteDAO El prestamoExpedienteDAO a establecer.
	 */
	public void setPrestamoExpedienteDAO(
			PrestamoExpedienteDAO prestamoExpedienteDAO) {
		this.prestamoExpedienteDAO = prestamoExpedienteDAO;
	}

	/* (sin Javadoc)
	 * @see pe.com.bn.sach.service.CalificacionService#sumaCuotaMensBanco(pe.com.bn.sach.domain.Bnchf53CalPrestOtroBanc)
	 */
	
	/**
	 * @param financiarGastosDAO El financiarGastosDAO a establecer.
	 */
	public void setFinanciarGastosDAO(FinanciarGastos33DAO financiarGastosDAO) {
		this.financiarGastosDAO = financiarGastosDAO;
	}
	
}
;